1. Field of the Invention
The present invention relates to electronic systems and more particularly to scheduling and allocation of resources within such a system.
2. Description of the Related Art
Systems having shared resources are common. One example of such a system is a computer network in which computing devices such as workstations, personal computers, servers, storage devices, firewalls and other computing devices function as nodes of a network with at least one network element connecting the computing devices. The various nodes transmit and/or receive various kinds of information over the network, typically in packets.
The rules by which nodes transmit and receive packets are defined in various protocols. A network protocol provides rules to route a packet of information from a source to a destination. A packet is generally a portion of a message transmitted over a network that typically includes routing or destination information in addition to data information. Packets may vary in size from only a few bytes to many thousands of bytes.
In a switched network, congestion arises when a shared resource such as a path, internal or external to the switch, is requested to forward more packets than its capacity allows. In switched networks (and other systems) an arbiter may be used to schedule usage of the shared resources to prevent conflicts resulting from requests for simultaneous access to the same shared resource. One example of such a system having shared resources susceptible to conflicts is a network switch having multiple input ports and multiple output ports in which input ports make requests for connection to the output ports. Each requester or input port sends a request for an output port (or sends a set of requests for multiple output ports) to an arbiter.
A conflict arises when a particular output port is requested by multiple input ports at the same time (assuming an output port can be allocated to only one input port at a time). To deal with the conflict, an arbitration decision awards the output port to one of the requesters. The arbiter chooses the winner such that resources (the output ports) are allocated to requesters in a conflict-free way. Thus, certain requests are serviced by being granted an output port and certain requests may be left unserviced in that they are denied an output port. However, the choice of which requests to grant may lead to under-utilization of the resources since some requests may be denied.
Another example of a system having shared resources is a computer system in which multiple processors are coupled to multiple memories. Assume that each processor has access to all of the memories and each memory can only be accessed by one processor at a time. When multiple processors request access to the same memory at the same time, an arbitration decision has to be made as to which processor gets to access the memory in question.
One type of traffic that can be found on systems described above is isochronous traffic. Isochronous traffic has time constraints requiring the isochronous data to be delivered within a certain time. For example, a video stream needs to be delivered in time to be displayed on a screen without delay negatively affecting video image quality. Unfortunately, many existing systems are optimized for asynchronous traffic rather than for the requirements of isochronous traffic. Because of the time constraints, isochronous transfers add increased scheduling complexity in a system in which an arbiter allocates resources.
Multicast transfers, which use one to many communication in which a single source communicates with multiple targets simultaneously, provide efficiency since such transfers save network bandwidth and reduce the time to execute the multicast. However, such transfers can also add increased scheduling complexity, particularly in a system that mainly supports unicast operations. That increased complexity arises in part because multicast requires that multiple resources be available simultaneously.
Accordingly, it would be desirable to provide a way to more easily deal with scheduling complexities associated with isochronous traffic and/or multicast traffic in a system requiring arbitration for resources.